<?php

/**
 * dashboard actions.
 *
 * @package    cronos-doctrine
 * @subpackage dashboard
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class dashboardActions extends sfActions
{
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
  public function executeIndex(sfWebRequest $request)
  {
      
      
       if ($this->getUser()->isFirstRequest())    {
         
        $this->getUser()->isFirstRequest(false);
        $this->agente_id = $this->getUser()->getAttribute('agente_user');
        $date= new DateTime($this->getUser()->getAttribute('agente_user_fecha_ultima'));
        $this->getUser()->setAttribute('page', 1);
        
        
        
      }else {
          
          
        $this->agente_id = $this->getUser()->getAttribute('agente_user');
        $date= new DateTime($this->getUser()->getAttribute('agente_user_fecha_ultima'));
        
      }
      
     
      
    
  }
  
   public function executeClientes(sfWebRequest $request)
  {
      
      
      
      $cliente = new Usuario();
      $this->clienteReporte = $cliente->getReportCliente();
      
    
  }
  
   public function executeStatusCliente(sfWebRequest $request)
  {
      
      
      
      $cliente = new Usuario();
      $this->clienteReportes = $cliente->getUsuariosSatus();
      
    
  }
  
    public function executeStatusColonia(sfWebRequest $request)
  {
      
      
      
      $cliente = new Usuario();
      $this->clienteReportes = $cliente->getUsuariosColonias();
      
    
  }
  
  
     public function executeStatusDelegacion(sfWebRequest $request)
  {
      
      $cliente = new Usuario();
      $this->clienteReportes = $cliente->getUsuariosDelegaciones();
      
    
  }
  
  
    
  
     public function executeStatusZona(sfWebRequest $request)
  {
      
      $cliente = new Usuario();
      $this->clienteReportes = $cliente->getUsuariosZonas();
      $this->clienteStatus = $cliente->getUsuariosZonasStatus();
      
      $status = new LlamadaStatus();
      $this->status = $status->getLlamadaStatus();
      
    
  }
  
  
  
  public function executeCalendario(sfWebRequest $request)
  {
      
      $camionetas = Doctrine_Query::create()
                          ->select(' ag.camioneta_id,count(ag.id) as traslados,SUM(desc.monto) as monto_descuento,SUM(ag.precio) as monto_total, SUM(ag.cantidad_mascota) as total_mascotas, DATE_FORMAT(ag.fecha_asig,"%Y-%m-%d") as fecha')
                          ->from('Agendado ag')
                          ->leftJoin('ag.Descuento desc ON desc.id = ag.descuento_id')
                          ->where('ag.empresa_id='.$this->getUser()->getAttribute('agente_user_empresa_id'))
                          ->addWhere('ag.agendado_status_id = 5')
                          ->addWhere('ag.servicio_tipo_id = 1')
                         ->addGroupBy('DATE_FORMAT(ag.fecha_asig,"%Y-%m-%d")');
      
      $this->camionetas = $camionetas->execute();
      
      
      
    
  }
  public function executeCalendarioP(sfWebRequest $request)
  {
      
      $fecha = date('Y-m-j');
      $nuevafecha = strtotime ( '-90 day' , strtotime ( $fecha ) ) ;
      $nuevafecha = date ( 'Y-m-j' , $nuevafecha );
      
      $camionetas = Doctrine_Query::create()
                          ->select('llm.categoria_id as negocio,count(llm.id) as total, DATE_ADD(llm.ultimo_servicio,INTERVAL llm.periodicidad DAY) as fecha')
                          ->from('LlamadaServicio llm')
                          ->where('llm.empresa_id='.$this->getUser()->getAttribute('agente_user_empresa_id'))
                          //->addWhere('DATE_ADD(llm.ultimo_servicio,INTERVAL llm.periodicidad DAY)>="'.$nuevafecha.'"')
                          //->addWhere('DATE_ADD(llm.ultimo_servicio,INTERVAL llm.periodicidad DAY)<= "'.date('Y-m-d').'"')
                          //->addWhere('llm.ultimo_servicio_status > 1')
                          //->addWhere('DATE_ADD(llm.ultimo_servicio,INTERVAL llm.periodicidad DAY) > llm.llamada_programada ')
                          ->groupBy('DATE_ADD(llm.ultimo_servicio,INTERVAL llm.periodicidad DAY)')
                          ->addgroupBy('llm.categoria_id')
                          ->orderBy('DATE_ADD(llm.ultimo_servicio,INTERVAL llm.periodicidad DAY) asc');
      $this->camionetas = $camionetas->execute();
      
      
  }
  public function executeVentas(sfWebRequest $request)
  {
      
      
      $this->from  =   $request->getParameter('from');
      
      $this->to    =   $request->getParameter('to');
      if(empty($this->to)) $this->to = date('Y-m-d');
      
      $camionetas = Doctrine_Query::create()
                          ->select(' ag.camioneta_id,count(ag.id) as traslados,SUM(desc.monto) as monto_descuento,SUM(ag.precio) as monto_total, SUM(ag.cantidad_mascota) as total_mascotas, DATE_FORMAT(ag.fecha_asig,"%Y-%m") as fecha')
                          ->from('Agendado ag')
                          ->leftJoin('ag.Descuento desc ON desc.id = ag.descuento_id')
                          ->where('ag.empresa_id='.$this->getUser()->getAttribute('agente_user_empresa_id'))
                          ->addWhere('ag.agendado_status_id = 5')
                          ->addWhere('ag.servicio_tipo_id = 1')
                         ->addWhere('DATE_FORMAT(ag.fecha_asig,"%Y-%m-%d") >= "'.$this->from.'" ')
                         ->addWhere('DATE_FORMAT(ag.fecha_asig,"%Y-%m-%d") <="'.$this->to.'" ')
                         ->addGroupBy('ag.camioneta_id');
      
      $this->camionetas = $camionetas->execute();
    
  }
  
   public function executeRentAlim(sfWebRequest $request)
  {
      
      
      $this->from  =   $request->getParameter('from');
      if(empty($this->from)) $this->from = '2014-01-01';
      
      $this->to    =   $request->getParameter('to');
      if(empty($this->to)) $this->to = date('Y-m-d');
      
      $camionetas = Doctrine_Query::create()
                          //->select(' ag.usuario_id as cliente,DATE_FORMAT(ag.fecha_asig,"%Y-%m-%d") as fecha')
                          ->from('Agendado ag')
                          ->leftJoin('ag.Servicio serv ON serv.agendado_id = ag.id')
                          ->leftJoin('serv.Producto prod ON prod.id = serv.producto_id')
                          ->leftJoin('prod.ProductoPrecio prodpres')
                          ->where('ag.empresa_id='.$this->getUser()->getAttribute('agente_user_empresa_id'))
                          ->addWhere('ag.agendado_status_id = 5')
                          ->addWhere('ag.servicio_tipo_id = 2')
                         ->addWhere('DATE_FORMAT(ag.fecha_asig,"%Y-%m-%d") >= "'.$this->from.'" ')
                         ->addWhere('DATE_FORMAT(ag.fecha_asig,"%Y-%m-%d") <="'.$this->to.'" ');
      
      $this->camionetas = $camionetas->execute();
    
  }
}
